from pydantic import Field

from common.base_models import InfectionMonkeyBaseModel


class SNMPOptions(InfectionMonkeyBaseModel):
    agent_binary_download_timeout: float = Field(
        gt=0.0,
        default=60.0,
        description="The maximum time (in seconds) to wait for a successfully exploited"
        " SNMP client to download the agent binary.",
    )
    snmp_request_timeout: float = Field(
        gt=0.0,
        default=0.5,
        description="The maximum time (in seconds) to wait for a response from an SNMP client.",
    )
    snmp_retries: int = Field(
        ge=0,
        default=3,
        description="The number of times to retry an SNMP request before giving up.",
    )
